Patch 5.0.5/API changes
This article covers the cumulative AddOn UI Customization and Macro API changes from WoW 4.3.x through 5.0.5 for MoP. Breaking changes * Party and Group member APIs have been consolidated and renamed. * Item link text has been extended yet one more optional parameter for 5.0.x. * UIPanelButtonTemplate has changed dramaticaly, using textures to paint the button rather than the button's normal mechanism. * New Lua execution time limit while in combat. Blue Posts * New Parent Key and Relative Key, and 5.0.4 API Update Summary * Patch 5.0.4 Survival Guide or MMO Champ Blue Post style (easier to read) * 5.0.5 Cumulative Known Issues * 5.0.4 AddOn Update Suvival Guide (Green Post) Party and Group APIs Several of the specialized Party and Raid functions and events have been consolidated. The naming convention cleanup is basically that: 'Party' and 'Raid' groups have semantically become just a 'Group'; and 'Party' within a 'Raid' has semantically become just a 'SubGroup'. This effectively means that a Group is now a 'Group', whether raid or party. And a raids' parties are now 'SubGroups' * group counts - , GetNumRaidMembers and GetRealNumRaidMembers to GetNumGroupMembers * subgroup counts - GetNumPartyMembers (within a raid) and GetRealNumPartyMembers (within a raid) to GetNumSubgroupMembers Similarly, the party and raid leaders have converged, while 'UnitIs..' covers 'Is..' now. * group leader - IsRaidLeader, IsPartyLeader and UnitIsPartyLeader are now covered by UnitIsGroupLeader * group assistant - IsRaidOfficer and UnitIsRaidOfficer are now covered by UnitIsGroupAssistant And the coresponding events have merged. * RAID_ROSTER_UPDATE and PARTY_MEMBERS_CHANGED become GROUP_ROSTER_UPDATE XML Lua Object References In addition to the existing 'parentKey' there are now a few more standard reference and related attributes. These 'key' references are used to automatically set an object reference at runtime to a related instance, which would be directly avaible to the inline script functions. Two of the new additions, realtiveKey and targetKey, allow setting targets based on object references directly from XML. On LayoutFrame: * parentKey (existing) * parentArray - name of to add this LayoutFrame to a Lua list in its parent On Animation: * parentKey (existing) * target - directly set the animation target by name * targetKey - use a 'reference' to find the target rather than a global name On Anchor: * relativeTo (existing) * relativeKey - alternative to 'relativeTo' that uses a 'reference' instead of a global name Buttons * The original UIPanelButtonTemplate is gone, and is now replaced by a renamed UIPanelButtonTemplate2, that existed previously. This causes all buttons (that use UIPanelButtonTemplate) to use the new scheme for rendering by tiling rather than stretching, using layer textures rather than the 'NormalTexture' and friends. This could be a visually or funcitonally breaking change for some. The stretchy buttons were argualbly simpler, but had pretty bad stretching artifacts. Item Links * Count of Item String parameters in an Item Link has changed from 10 to 11: : from |cXXXXXXXX|Hitem:positive integersnegative or positive integers|hname|h|r : to |cXXXXXXXX|Hitem:positive integersnegative or positive integers|hname|h|r Other * Inline X and Y values for XML Anchors have been changed from 'int' to 'float'.